#pragma once
#include <so_math.h>
#include <Vector2.h>
class IMotion
{
private:
    real velocity, minvelocity, maxvelocity, acceleration, deceleration;
    Vector2 position;
public:
    IMotion(Vector2 position=Vector2(),real velocity=0, real minvelocity = 0, real maxvelocity = 0, real acceleration = 0, real deceleration = 0);
    ~IMotion() = default;

    Vector2 getPosition();
    real getVelocity();
    real getMinVelocity();
    real getMaxVelocity();
    real getAcceleration();
    real getDeceleration();
    void setPosition(Vector2 val);
    real setVelocity(real val);
    real setMinVelocity(real val);
    real setMaxVelocity(real val);
    real setAcceleration(real val);
    real setDeceleration(real val);
    virtual void update(real delta);
    void motion(real delta,real rad);
};